/*
	libsimple_graphical - unambitious C++ graphical library
	https://notabug.org/namark/libsimple_graphical
	https://gitlab.com/namark/libsimple_graphical
	https://github.com/namark/libsimple_graphical

	Copyright (C) 2017-2019 respective authors/contributors

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SIMPLE_GRAPHICAL_COMMON_DEF_H
#define SIMPLE_GRAPHICAL_COMMON_DEF_H

#include <SDL2/SDL.h>

#include "simple/geom/vector.hpp"
#include "simple/geom/segment.hpp"

namespace simple::graphical
{

	using int2 = geom::vector<int, 2>;
	using float2 = geom::vector<float, 2>;
	using rect = geom::vector_segment<int, 2>;
	using anchored_rect = geom::anchored_vector_segment<int, 2, float>;
	using range2D = rect::range;

	enum class blend_mode : std::underlying_type_t<SDL_BlendMode>
	{
		none = SDL_BLENDMODE_NONE,
		alpha = SDL_BLENDMODE_BLEND,
		add = SDL_BLENDMODE_ADD,
		multiply = SDL_BLENDMODE_MOD
	};

} // namespace simple::graphical

#endif /* end of include guard */
